Dynamic client segregation in 802.11ax networks

ABSTRACT

Systems and methods for dynamic client segregation in 802.11ax networks includes determining, for each access point of a plurality of access points in a network, a ratio comprising a number of fully uplink multi-user capable client devices to a total number of client devices connected to the access point; and steering, based on at least the ratio, client devices of the network to particular access points of the plurality of access points.

BACKGROUND

The explosion and proliferation of wireless electronic devices has ledto an increasing number of challenges in trying to accommodate theincreasing number of users on wireless communication channels. Forexample, high levels of interference brought about by large numbers ofusers threatens to degrade the levels of network performance that usershave come to expect. The Institute of Electrical and ElectronicsEngineers (IEEE) publish many popular specifications for use in wirelessunder the 802.11 standard family. 802.11 continues to evolve in anattempt to address all challenges presented with the proliferation ofwireless devices.

in particular, the IEEE 802.11ax project started in May 2014 with theformation of TGax as a successor to the successful IEEE 802.11acstandard. The main objectives of the TGax was to define a physical layerand a medium access control capable of supporting at least a four timesimprovement in average throughput per station in a dense deploymentscenario when compared to IEEE 802.11ac. However, the 802.11ax standarditself does not address all issues that need to be solved. Furtherimprovements are needed to maximize the potential of 802.11ax.

BRIEF DESCRIPTION OF THE DRAWINGS

The present disclosure, in accordance with one or more variousembodiments, is described in detail with reference to the followingfigures. The figures are provided for purposes of illustration only andmerely depict typical or example embodiments.

FIG. 1 illustrates one example of a network configuration that may beimplemented for an organization, such as a business, educationalinstitution, governmental entity, healthcare facility or otherorganization.

FIG. 2 is an example flowchart for dynamic client segregation in802.11ax networks in accordance with one embodiment.

FIG. 3 illustrates an example flowchart for dynamic client segregationin 802.11ax networks in accordance with one embodiment.

FIG. 4 illustrates an example flowchart for dynamic client segregationin 802.11ax networks in accordance with one embodiment.

FIGS. 5A and 5B illustrate an example of dynamic client segregation in802.11ax networks in accordance with one embodiment.

FIG. 6 is an example computing component that may be used to implementvarious features of embodiments described in the present disclosure.

The figures are not exhaustive and do not limit the present disclosureto the precise form disclosed.

DETAILED DESCRIPTION

Implementations of the disclosed technology may include systems,methods, and computer readable mediums for dynamic client segregation in802.11ax networks in accordance with one embodiment.

To understand the present invention, a basic understanding of 802.11 and802.11ax is needed. The minimum understanding necessary is describedbelow, but further detail and guidance may be found in the 802.11axstandard, as well as other related 802.11 standards.

Multi-User Multiple Input Multiple Output (MU-MIMO) allows a wirelessdevice, such as an access point, to communicate with multiple devicessimultaneously. This decreases the time each device has to wait for asignal and can dramatically speed up a network. In short, MU-MIMO worksby using multiple antennas to send data to multiple devices/stations.

One of the main features added to the 802.11ax specification wasOrthogonal Frequency-Division Multiple Access (OFDMA). At a physicallayer level, it means multiple entities transmitting data at the sametime over different frequency tones/subcarriers where the subcarriersare orthogonal to each other. A timeslot containing a certain group oftones is known as a RU.

IEEE 802.11ax defines downlink Multi-User Physical Layer Protocol DataUnits (MU-PPDU) in a MU-MIMO format, an OFDMA format, or a mixture ofboth. The standard also defines uplink MU-PPDU in a MU-MIMO and OFDMAformat. For the uplink MU-PPDUs, the access point needs to schedulecertain stations within a timeslot to send data on uplink usingdifferent RUs. The stations are notified of the transmit characteristicslike (transmit power, modulation and coding, etc.) and the specific RUto be used for the uplink transmission.

The 802.11ax standard allows for uplink multi-user (UL MU) transmissionsthat are synchronized across the transmitting 802.11ax UL MU capablestations with a trigger frame (TF). These are called trigger-based UL MUtransmissions. The trigger can either be a control frame by itself orthe trigger response scheduling (TRS) control of the HI control field inthe Media Access Control (MAC) header when the field is encoded as itsHE variant.

Contrary to this, the Operation Mode (OM) Control variant of theHE-style HT control field allows 802.11ax UL MU capable stations todisable trigger-based UL MU traffic. This is done by setting the “UL MUDisable” subfield and with this, the station is not mandated to respondto the TF or TRS-laden frames. The standard also provides for anadditional subfield in the OM Control subfield—the “UL MU Data. Disable”subfield—for stations that would prefer using UL MU for control framesbut not data frames.

Until all client devices fully support UL MU capability, APs would needto serve clients with different UL MU behaviors. However, the efficiencyof channel utilization for the APs will still remain diminished due tothose clients that either support UL MU only for control frames or donot support it at all. All legacy clients—802.11ac and older—will be apart of the latter category as well and will be a constant offset forthe inefficiency of channel utilization.

Given this insight and background, there are potential ways to optimizechannel utilization of a Basic Service Set (BSS) by segregating theclients based on their capability. to support UL MU transmissions. Inone aspect, the invention involves pooling clients across BSSs in anextended network so that legacy and UL MU incapable clients do notdegrade the performance of UL MU capable clients, while having optimalchannel utilization for themselves. Additional details are discussedbelow.

For a BSS which has a wide variety of clients, the clients can belargely divided into three groups:

(1) Clients with full support for TB UL MU transmissions(fully-ul-mu-capable devices). These clients are HE-capable with supportfor LT MU for data as well as control frames for these, “UL MU Disable”and “UL MU Data Disable” subfield are both set to 0.

(2) Clients with no support for TB UL MU transmissions (ul-mu-incapabledevices). These clients include legacy clients including CCK, OFDM, HTand VHT-capable, as well as HE-capable with no UL MU support at all—forthese, “UL MU Disable” subfield is set to 1 and “UL MU Data Disable”subfield is reserved since it would be redundant.

(3) HE-capable clients with UL MU support for control frames but notdata frames—for these, “UL. MU Disable” is set to 0 while “UL MU DataDisable” subfield is set to 1 (partially-ui-mu-capable devices). Thepartially-ul-mu-capable clients can either be kept separate from thefully-ul-mu-capable devices and the ul-mu-incapable devices, or combinedin either of them, based on the composition of the capabilities of thestations associated to an AP.

In a mixed network of 802.11ax and legacy devices, we can run into avariety of scenarios with regards to distribution of associatedstations, which can be grouped into three cases or scenarios:

(1) The number of fully-ul-mu-capable devices is much higher than thenumber of ul-mu-incapable devices.

(2) The number of fully-ul-mu-capable devices is much lower than thenumber of ul-mu-incapable devices.

(3) The number of fully-ul-mu-capable devices is almost same as thenumber of ul-mu-incapable devices

Based on this, we derive a new metric for the 802.11ax-capable APs: thehe-ul-mu-client-density which can be defined as the ratio of thefully-ul-mu-capable clients to the total number of clients connected tothe AP.

Based on the ratio, clients can be distributed in an extended network ofAPs such that the he-ul-mu-client-density for a given AP is made eitheras low as possible so that the AP is non UL capable client-heavy or ashigh as possible so that the AP is UL capable 802.11ax client-heavy. Theclient-pools formed based on this distribution requirement can either betied to different BSSs either by using client-match algorithms, or byreconfiguring the PHY and MAC of the radio into simultaneous dual-radiosthat are configured on different channels on the same band or differentbands.

As described in more detail with reference to FIG. 1, a Wireless Lan(WLAN) may include a plurality of Access Points (APs), as elements ofthe WLAN. These APs in the deployed network may be referred to asdeployed. APs for ease of discussion.

Before describing embodiments of the disclosed systems and methods indetail, it is useful to describe an example network installation withwhich these systems and methods might be implemented in variousapplications. FIG. 1 illustrates one example of a network configuration100 that may be implemented for an organization, such as a business,educational institution, governmental entity, healthcare facility orother organization. This diagram illustrates an example of aconfiguration implemented with an organization having multiple users (orat least multiple client devices 110) and possibly multiple physical orgeographical sites 102, 132, 142. The network configuration 100 mayinclude a primary site 102 in communication with a network 120. Thenetwork configuration 100 may also include one or more remote sites 132,142, that are in communication with the network 120.

The primary site 102 may include a primary network, which can be, forexample, an office network, home network or other network installation.The primary site 102 network may be a private network, such as a networkthat may include security and access controls to restrict access toauthorized users of the private network. Authorized users may include,for example, employees of a company at primary site 102, residents of ahouse, customers at a business, and so on.

In the illustrated example, the primary site 102 includes a controller104 in communication with the network 120. The controller 104 mayprovide communication with the network 120 for the primary site 102,though it may not be the only point of communication with the network120 for the primary site 102. A single controller 104 is illustrated,though the primary site may include multiple controllers and/or multiplecommunication points with network 120. In some embodiments, thecontroller 104 communicates with the network 120 through a router (notillustrated). In other embodiments, the controller 104 provides routerfunctionality to the devices in the primary site 102.

A controller 104 may be operable to configure and manage networkdevices, such as at the primary site 102, and may also manage networkdevices at the remote sites 132,134. The controller 104 may be operableto configure and/or manage switches, routers, access points, and/orclient devices connected to a network. The controller 104 may itself be,or provide the functionality of, an access point.

The controller 104 may be in communication with one or more switches 108and/or wireless Access Points (APs) 106 a-c. Switches 108 and wirelessAPs 106 a-c provide network connectivity to various client devices 110 aj. Using a connection to a switch 108 or AP 106 a-c, a client device 110a-h may access network resources, including other devices on the(primary site 102) network and the network 120.

Examples of client devices may include: desktop computers, laptopcomputers, servers, web servers, authentication servers,authentication-authorization-accounting (AAA) servers, Domain NameSystem (DNS) servers, Dynamic Host Configuration Protocol (DHCP)servers, Internet Protocol (IP) servers, Virtual Private Network (VPN)servers, network policy servers, mainframes, tablet computers,e-readers, netbook computers, televisions and similar monitors (e.g.,smart TVs), content receivers, set-top boxes, personal digitalassistants (PDAs), mobile phones, smart phones, smart terminals, dumbterminals, virtual terminals, video game consoles, virtual assistants,Internet of Things (LOT) devices, and the like.

Within the primary site 102, a switch 108 is included as one example ofa point of access to the network established in primary site 102 forwired client devices 110 i-j. Client devices 110 i-j may connect to theswitch 108 and through the switch 108, may be able to access otherdevices within the network configuration 100. The client devices 110 i-jmay also be able to access the network 120, through the switch 108. Theclient devices 110 i-j may communicate with the switch 108 over a wired112 connection, In the illustrated example, the switch 108 communicateswith the controller 104 over a wired 112 connection, though thisconnection may also be wireless.

Wireless APs 106 a-c are included as another example of a point ofaccess to the network established in primary site 102 for client devices110 a-h. Each of APs 106 a-c may be a combination of hardware, software,and/or firmware that is configured to provide wireless networkconnectivity to wireless client devices 110 a-h. In the illustratedexample, APs 106 a-c can be managed and configured by the controller104. APs 106 a-c communicate with the controller 104 and the networkover connections 112, which may be either wired or wireless interfaces,

The network configuration 100 may include one or more remote sites 132.A remote site 132 may be located in a different physical or geographicallocation from the primary site 102. In some cases, the remote site 132may be in the same geographical location, or possibly the same building,as the primary site 102, but lacks a direct connection to the networklocated within the primary site 102. Instead, remote site 132 mayutilize a connection over a different network, e.g., network 120. Aremote site 132 such as the one illustrated in FIG. 1 may be, forexample, a satellite office, another floor or suite in a building, andso on. The remote site 132 may include a gateway device 134 forcommunicating with the network 120. A gateway device 134 may be arouter, a digital-to-analog modem, a cable modem, a Digital SubscriberLine (DSL) modem, or some other nets network device configured tocommunicate to the network 120. The remote site 132 may also include aswitch 138 and/or AP 136 in communication with the gateway device 134over either wired or wireless connections. The switch 138 and AP 136provide connectivity to the network for various client devices 140 a-d.

In various embodiments, the remote site 132 may be in directcommunication with primary site 102, such that client devices 140 a-d atthe remote site 132 access the network resources at the primary site 102as if these clients devices 140 a-d were located at the primary site102. In such embodiments, the remote site 132 is managed by thecontroller 104 at the primary site 102, and the controller 104 providesthe necessary connectivity, security, and accessibility that enable theremote site 132's communication with the primary site 102. Onceconnected to the primary site 102, the remote site 132 may function as apart of a private network provided by the primary site 102.

In various embodiments, the network configuration 100 may include one ormore smaller remote sites 142, comprising only a gateway device 144 forcommunicating with the network 120 and a wireless AP 146, by whichvarious client devices 150 a-b access the network 120. Such a remotesite 142 may represent, for example, an individual employee's home or atemporary remote office. The remote site 142 may also be incommunication with the primary site 102, such that the client devices150 a-b at remote site 142 access network resources at the primary site102 as if these client devices 150 a-b were located at the primary site102. The remote site 142 may be managed by the controller 104 at theprimary site 102 to make this transparency possible. Once connected tothe primary site 102, the remote site 142 may function as a part of aprivate network provided by the primary site 102.

The network 120 may be a public or private network, such as theInternet, or other communication network to allow connectivity among thevarious sites 102, 130 to 142 as well as access to servers 160 a-b. Thenetwork 120 may include third-party telecommunication lines, such asphone lines, broadcast coaxial cable, fiber optic cables, satellitecommunications, cellular communications, and the like. The network 120may include any number of intermediate network devices, such asswitches, routers, gateways, servers, and/or controllers, which are notdirectly part of the network configuration 100 but that facilitatecommunication between the various parts of the network configuration100, and between the network configuration 100 and othernetwork-connected entities. The network 120 may include various contentservers 160 a-b. Content servers 160 a-b may include various providersof multimedia downloadable and/or streaming content, including audio,video, graphical, and/or text content, or any combination thereof.Examples of content servers 160 a-b include, for example, web servers,streaming radio and video providers, and cable and satellite televisionproviders. The client devices 110 a j, 140 a-d, 150 a-b may request andaccess the multimedia content provided by the content servers 160 a-b.

Although 10 client devices 110 a-j, or stations (STAs), are illustratedat primary site 102 in the example of FIG. 1, in various applications, anetwork may include a lesser or greater quantity of STA's. Indeed, someimplementations may include a dramatically larger quantities of STAs.For example, various wireless networks may include hundreds, thousands,or even tens of thousands of STAs communicating with their respectiveAPs, potentially at the same time.

FIG. 2 is an example flowchart for dynamic client segregation in802.11ax networks in accordance with one embodiment. Although the stepsdepicted in FIG. 2 are shown in an order, the steps may be performed inany order, and/or at any time.

In step 200, network information is collected. The information may becollected by each AP of the network, or by a subset of APs, or by anycombination thereof. The information that is collected may be anyinformation, may be processed by the AP, or may be unprocessed.

In step 205, network information is sent to the controller. Theinformation may be sent in any format now known or later developed.

In step 210, the ratio of fully uplink capable client devices to thetotal number of client devices is determined. The ratio may bedetermined for each AP within the network or for a subset of the APs ofthe network.

in step 215, access points are classified. The APs may be classified inmany different ways. In some embodiments, thresholds may be used toidentify the low or high ratio APs. In particular, the APs may beclassified as a low ratio or low threshold AP, wherein there are fewfully ul-mu-capable client devices (and thus where ul-mu-incapableclient devices should be steered), the APs may be classified as a highratio or high threshold AP, where there are many fully ul-mu-capableclient devices (and thus where fully ul-mu-capable client devices shouldbe steered, or there may be an unclassified or undecided state where theratio is not low or high. Many other configurations or setups arepossible.

For example, in some networks, each AP may be characterized by a tupleof certain parameters (Rx RSSI, Tx EIRP, he-ul-mu-client-density, etc.)for each client, which makes the steer-destination of each clientlogically independent of each other in some respects. Since thehe-ul-mu-client-density (i.e., the ratio) is an attribute of aparticular AP radio, the AP radios may be sorted based onhe-ul-mu-client density while assuming the other parameters to beidentical. Then, a lower and upper threshold for the density of APs thatwe would want to characterize as 802.11ax-preferred APs may bedetermined.

Continuing the example, the low- and high-thresholds (representativevalues of 20% and 80% respectively) can be fixed for an extended networkat the controller. The overall goal is to get the AP (radios) that arein the middle between low and high thresholds to fall into one of thecategories (below low threshold or above high threshold). If, in a givendeployment, we do not have a minimum number of APs above/below thehigh-/low-threshold, then the corresponding threshold can be temporarilyoptimized such that we have optimal number of APs beyond that thresholdand also maintain an optimal gap between the two thresholds. Once theminimum conditions have been met, the thresholds can be defaulted to thevalue set by the controller.

Then, using the above thresholds, if the density is above thehigh-threshold, the AP can be categorized as being the hub forfully-ul-mu-capable clients and the AP would prefer to steerul-mu-incapable clients to other APs in the network that have a densitylower than the low-threshold or closer to it. While steering, thedensity of the other APs will be used as an input variable in thedecision function along with the existing parameters. Optionally,steering might also choose APs between the low and high thresholds incase the other parameters suggest so. Partially ul-mu-capable clientsmay be steered to the above described hub or may be steered away.

If the density is below the lower-threshold, the AP can be categorizedas being the hub for ul-mu-incapable clients and the AP would prefer tosteer fully-ul-mu-capable clients to other APs in the network that havea density higher than the high-threshold or closer to it. Whilesteering, the density of the other APs will be used as an input variablein the decision function along with the existing parameters. Optionally,steering might also choose APs density between the low and highthresholds in case the other parameters suggest so. Partiallyul-mu-capable clients may be steered to the above described hub or maybe steered away.

If the density is between the two thresholds, the AP can be categorizedas undetermined. Such APs can be chosen for the steer in the above twoconditions if they rank higher based on other parameters that are takeninto account. For initiating a steer, these APs would follow both of theabove approaches until the point they can be categorized by a densitythat is higher than the high-threshold or lower than the low-threshold.It should be noted that with every steer away from an undetermined AP,the AP moves closer to the density threshold nearest to it. Also, as forthe AP towards which a client is steered: it will be decided by thedecision function which will favor an AP with most polarizedhe-ul-mu-client-density keeping other steering parameters into account.

In step 220, the ratio and/or classification is sent to the accesspoints. The ratio and/or classification may be sent to any access pointsat any time, in any format ow known or later developed. The ratio and/orclassification may be updated at any time, for any reason.

In step 225, client devices are steered towards particular accesspoints. The steering may be handled as described above, to arrive at anetwork that has polarized the he-ul-mu-client-density, such that APseither have a high density or low density, within the confines of theparticular network. The steering may be done at any time, for anyreason, and in any manner now known or later developed. The steering maybe repeated as many times as needed to arrive at a suitably optimizednetwork.

Optionally, if an AP supports re-organizing its hardware modules suchthat a given radio can be converted into two radios that can operatesimultaneously in real time on two different channels then the steeringmay be different.

For example, for APs that are incapable of steering their clients toother APs in the network because none of the other APs turn out to bebetter than itself for a majority of its clients, a decision can be madeto refactor the radio into two or more simultaneous radios operating ontwo different channels. The benefit of this will be that theclient-MAC-address-hashed master table in the client matching/steeringalgorithm would contain two distinct entries, one for each radio, and asa result, the subset table passed down to the AP will show an entry thathas a snore favorable density and has comparable other parameters. As aresult, the steer can be effected between the two radios and we willshift from one radio with an undesirable he-ul-mu-client-density (avalue between the two thresholds) to two radios with polarized densityvalues.

Likewise, the opposite can also happen where two or more simultaneousradios maybe combined into one. Every AP can periodically check it's BSSon each of the radios and determine if the combined density would stillqualify the AP to be beyond a threshold. This can happen if one of theBSSs has few clients and due to this, the combined density wouldn't bemuch different. In such a case, it may be okay to converge the tworadios together so as to benefit from the increase in maximum PHY datarate.

FIG. 3 is an example flowchart for dynamic client segregation in802.11ax networks in accordance with one embodiment. Although the stepsdepicted in FIG. 3 are shown in an order, the steps may be performed inany order, and/or at any time.

In step 300, the APs are sorted by their ratio and a determination ismade regarding which APs satisfying thresholds. The sorting anddetermination may be made based on data collected prior to step 300. Thedata used may be any available data, collected at any time, in anymanner.

In step 305, a determination is made whether a preferred number of APssatisfy the thresholds. If there is not a preferred number of APssatisfying the thresholds, the method proceeds to step 345. If there isa preferred number of APs satisfying the thresholds, the method proceedsto step 310. The preferred number of APs satisfying thresholds may beany amount, may vary dynamically, and may be set by any suitable entity.

In step 310, APs report their current ratio to the controller. The ratiomay be reported in any manner now known or later developed. Any otherinformation may also be reported to the controller.

In step 315, the controller passes ratios and other information to theAPs. The controller may send the ratios for each AP to all of the APs inthe network, so that each AP has the information necessary to makesteering decisions. Any information, in any format, may be sent to anynumber or configuration of APs.

In step 320, a determination is made whether the ratio of a particularAP is above the high threshold. If the ratio is above the highthreshold, the method proceeds to step 350. If the ratio is not abovethe high threshold, the method proceeds to step 325. The determinationmay be made in any suitable manner. The threshold may be set to anyamount, may vary dynamically, and may be set by any suitable entity.

In step 325, a determination is made whether the ratio of a particularAP is below the low threshold. If the ratio is below the low threshold,the method proceeds to step 355. If the ratio is not below the lowthreshold, the method proceeds to step 330. The determination may bemade in any suitable manner. The threshold may be set to any amount, mayvary dynamically, and may be set by any suitable entity.

In step 330, a determination is made whether a better destination isavailable, If there is a better destination available, the methodproceeds to step 360. If there is not a better destination available,the method proceeds to step 335. The determination may be made in anysuitable manner and may be based on any suitable factor or factors.

In step 335, the AP refactors the radio. The refactoring may be done inany suitable manner, such as those discussed above.

In step 340, the process is repeated for all APs periodically. Theprocess may be repeated as often as necessary. The frequency may vary ormay stay on a same pattern or interval.

In step 345, the thresholds are temporarily changed. The thresholds aretemporarily changed so that suitable APs may be classified or otherwiseidentified for steering. The change may last for any amount of time, andthe thresholds may be changed any amount.

In step 350, uplink incapable clients are steered to lower ratio APs.Any number of clients may be steered in any suitable manner.

in step 355, uplink capable clients are steered to higher ratio APs. Anynumber of clients may be steered in any suitable manner.

In step 360, clients are steered to a better destination. Any number ofclients may be steered in any suitable manner. The better destinationmay be based on any factor or factors.

FIG. 4 is an example flowchart for dynamic client segregation in802.11ax networks in accordance with one embodiment. Although the stepsdepicted in FIG. 4 are shown in an order, the steps may be performed inany order, and/or at any time.

In step 400, the ratio is checked across all radios for APs withsimultaneous dual band radios. The ratio may be checked in any suitablemanner, such as that as described above.

In step 405, a determination is made whether the ratio still meets thethresholds. If the thresholds are still met, the method proceeds to step415. If the ratio is not met, the method proceeds to step 410.

In step 410, the APs report their current ratio to the controller. TheAPs may report their ratio in any manner now known or later developed.

In step 415, the two radios of an AP are converged. The radios may beconverged in any manner now known or later developed.

FIGS. 5A and 5B are examples of dynamic client segregation in 802.11axnetworks in accordance with one embodiment. The example of FIGS. 5A and5B have been simplified and the invention should not be limited to thespecific configuration, details, or otherwise limited to the exampleshown in FIG. 5A and 5B.

In particular, FIG. 5A shows the ratio or distribution of fullyul-mu-capable clients relative to the total associated clients for 5different APs, AP1 500, AP2 505, AP3 510, AP4 515, and AP5 520. FIG. 5Ais shown before steering has occurred. Thus, most of the APs (AP2 505,AP3 510, and AP4 515) fall in-between the low threshold and the highthreshold. As discussed above, AP1 500 would be identified as a hub forul-mu-incapable clients, while AP5 520 would be a hub for ul-mu-capableclients. For this simplified example, clients are steered towards AP1500 or AP5 520 as needed. Additional steering may occur to other APsbased on a variety of factors.

FIG. 5B shows the results of the steering. The ratio of AP1 500 hasgotten even lower, and the ratio of AP5 520 has gotten higher.Meanwhile, AP2 505 has also moved below the low threshold, and. AP4 515has moved above the high threshold. AP3 510 remains in the middle, Thus,the APs of the example network of FIG. 5A and 5B have becomesubstantially more polarized, thereby offering a better experience fortheir clients.

FIG. 6 depicts a block diagram of an example computer system 600 inwhich various of the embodiments described herein may be implemented,The computer system 600 includes a bus 602 or other communicationmechanism for communicating information, one or more hardware processors604 coupled with bus 602 for processing information. Hardwareprocessor(s) 604 may be, for example, one or more general purposemicroprocessors.

The computer system 600 also includes a main memory 606, such as arandom-access memory (RAM), cache and/or other dynamic storage devices,coupled to bus 602 for storing information and instructions to beexecuted by processor 604. Main memory 606 also may be used for storingtemporary variables or other intermediate information during executionof instructions to be executed by processor 604. Such instructions, whenstored in storage media accessible to processor 604, render computersystem 600 into a special-purpose machine that is customized to performthe operations specified in the instructions.

The computer system 600 further includes a read only memory (ROM) 608 orother static storage device coupled to bus 602 for storing staticinformation and instructions for processor 604. A storage device 610,such as a magnetic disk, optical disk, or USB thumb drive (Flash drive),etc., is provided and coupled to bus 602 for storing information andinstructions.

The computer system 600 may be coupled via bus 602 to a display 612,such as a liquid crystal display (LCD) (or touch screen), for displayinginformation to a computer user. An input device 614, includingalphanumeric and other keys, is coupled to bus 602 for communicatinginformation and command selections to processor 604. Another type ofuser input device is cursor control 616, such as a mouse, a trackball,or cursor direction keys for communicating direction information andcommand selections to processor 604 and for controlling cursor movementon display 612. In some embodiments, the same direction information andcommand selections as cursor control may be implemented via receivingtouches on a touch screen without a cursor.

The computing system 600 may include a user interface module toimplement a GUI that may be stored in a mass storage device asexecutable software codes that are executed by the computing device(s).This and other modules may include, by way of example, components, suchas software components, object-oriented software components, classcomponents and task components, processes, functions, attributes,procedures, subroutines, segments of program code, drivers, firmware,microcode, circuitry, data, databases, data structures, tables, arrays,and variables.

In general, the word “component,” “engine,” “system,” “database,” datastore,” and the like, as used herein, can refer to logic embodied inhardware or firmware, or to a collection of software instructions,possibly having entry and exit points, written in a programminglanguage, such as, for example, Java, C or C++. A software component maybe compiled and linked into an executable program, installed in adynamic link library, or may be written in an interpreted programminglanguage such as, for example, BASIC, Perl, or Python. It will beappreciated that software components may be callable from othercomponents or from themselves, and/or may be invoked in response todetected events or interrupts. Software components configured forexecution on computing devices may be provided on a computer readablemedium, such as a compact disc, digital video disc, flash drive,magnetic disc, or any other tangible medium, or as a digital download(and may be originally stored in a compressed or installable format thatrequires installation, decompression or decryption prior to execution).Such software code may be stored, partially or fully, on a memory deviceof the executing computing device, for execution by the computingdevice. Software instructions may be embedded in firmware, such as anEPROM It will be further appreciated that hardware components may becomprised of connected logic units, such as gates and flip-flops, and/ormay be comprised of programmable units, such as programmable gate arraysor processors.

The computer system 600 may implement the techniques described hereinusing customized hard-wired logic, one or more ASICs or FPGAs, firmwareand/or program logic which in combination with the computer systemcauses or programs computer system 600 to be a special-purpose machine.According to one embodiment, the techniques herein are performed bycomputer system 600 in response to processor(s) 604 executing one ormore sequences of one or more instructions contained in main memory 606.Such instructions may be read into main memory 606 from another storagemedium, such as storage device 610. Execution of the sequences ofinstructions contained in main memory 606 causes processor(s) 604 toperform the process steps described herein. In alternative embodiments,hard-wired circuitry may be used in place of or in combination withsoftware instructions.

The term “non-transitory media,” and similar terms, as used hereinrefers to any media that store data and/or instructions that cause amachine to operate in a specific fashion. Such non-transitory media maycomprise non-volatile media and/or volatile media. Non-volatile mediaincludes, for example, optical or magnetic disks, such as storage device610. Volatile media includes dynamic memory, such as main memory 606.Common forms of non-transitory media include, for example, a floppydisk, a flexible disk, hard disk, solid state drive, magnetic tape, orany other magnetic data storage medium, a CD-ROM, any other optical datastorage medium, any physical medium with patterns of holes, a RAM, aPROM, and EPROM, a FLASH-EPROM, NVRAM, any other memory chip orcartridge, and networked versions of the same.

Non-transitory media is distinct from but may be used in conjunctionwith transmission media. Transmission media participates in transferringinformation between non-transitory media. For example, transmissionmedia includes coaxial cables, copper wire and fiber optics, includingthe wires that comprise bus 602. Transmission media can also take theform of acoustic or light waves, such as those generated duringradio-wave and infra-red data communications.

The computer system 600 also includes a communication interface 618coupled to bus 602. Network interface 618 provides a two-way datacommunication coupling to one or more network links that are connectedto one or more local networks. For example, communication interface 618may be an integrated services digital network (ISDN) card, cable modem,satellite modem, or a modern to provide a data communication connectionto a corresponding type of telephone line. As another example, networkinterface 618 may be a local area network (LAN) card to provide a datacommunication connection to a compatible LAN (or WAN component tocommunicate with a WAN). Wireless links may also be implemented. In anysuch implementation, network interface 618 sends and receiveselectrical, electromagnetic or optical signals that carry digital datastreams representing various types of information.

A network link typically provides data communication through one or morenetworks to other data devices. For example, a network link may providea connection through local network to a host computer or to dataequipment operated by an Internet Service Provider (ISP). The ISP inturn provides data communication services through the world wide packetdata communication network now commonly referred to as the “Internet”Local network and Internet both use electrical, electromagnetic oroptical signals that carry digital data streams. The signals through thevarious networks and the signals on network link and throughcommunication interface 618, which carry the digital data to and fromcomputer system 600, are example forms of transmission media.

The computer system 600 can send messages and receive data, includingprogram code, through the network(s), network link and communicationinterface 618. In the Internet example, a server might transmit arequested code for an application program through the Internet, the ISP,the local network and the communication interface 618.

The received code may be executed by processor 604 as it is received,and/or stored in storage device 610, or other non-volatile storage forlater execution.

Each of the processes, methods, and algorithms described in thepreceding sections may be embodied in, and fully or partially automatedby, code components executed by one or more computer systems or computerprocessors comprising computer hardware. The one or more computersystems or computer processors may also operate to support performanceof the relevant operations in a “cloud computing” environment or as a“software as a service” (SaaS). The processes and algorithms may beimplemented partially or wholly in application-specific circuitry. Thevarious features and processes described above may be used independentlyof one another, or may be combined in various ways. Differentcombinations and sub-combinations are intended to fall within the scopeof this disclosure, and certain method or process blocks may be omittedin some implementations. The methods and processes described herein arealso not limited to any particular sequence, and the blocks or statesrelating thereto can be performed in other sequences that areappropriate, or may be performed in parallel, or in some other manner.Blocks or states may be added to or removed from the disclosed exampleembodiments. The performance of certain of the operations or processesmay be distributed among computer systems or computers processors, notonly residing within a single machine, but deployed across a number ofmachines.

As used herein, a circuit might be implemented utilizing any form ofhardware, software, or a combination thereof. For example, one or moreprocessors, controllers, ASICs, PLAs, PALs, FPGAs, logical components,software routines or other mechanisms might be implemented to make up acircuit. In implementation, the various circuits described herein mightbe implemented as discrete circuits or the functions and featuresdescribed can be shared in part or in total among one or more circuits.Even though various features or elements of functionality may beindividually described or claimed as separate circuits, these featuresand functionality can be shared among one or more common circuits, andsuch description shall not require or imply that separate circuits arerequired to implement such features or functionality. Where a circuit isimplemented in whole or in part using software, such software can beimplemented to operate with a computing or processing system capable ofcarrying out the functionality described with respect thereto, such ascomputer system 600.

As used herein, the term “or” may be construed in either an inclusive orexclusive sense. Moreover, the description of resources, operations, orstructures in the singular shall not be read to exclude the plural.Conditional language, such as, among others, “can,” “could,” “might,” or“may,” unless specifically stated otherwise, or otherwise understoodwithin the context as used, is generally intended to convey that certainembodiments include, while other embodiments do not include, certainfeatures, elements and/or steps.

Terms and phrases used in this document, and variations thereof, unlessotherwise expressly stated, should be construed as open ended as opposedto limiting. As examples of the foregoing, the term “including” shouldbe read as meaning “including, without limitation” or the like. The term“example” is used to provide exemplary instances of the item indiscussion, not an exhaustive or limiting list thereof. The terms “a” or“an” should be read as meaning “at least one,” “one or more” or thelike. The presence of broadening words and phrases such as “one ormore,” “at least,” “but not limited to” or other like phrases in someinstances shall not be read to mean that the narrower case is intendedor required in instances where such broadening phrases may be absent.

What is claimed is:
 1. A method, comprising: determining, for eachaccess point of a plurality of access points in a network, a ratiocomprising a number of fully uplink multi-user capable client devices toa total number of client devices connected to the access point; andsteeling, based on at least the ratio, client devices of the network toparticular access points of the plurality of access points.
 2. Themethod of claim 1, wherein steering comprises moving a fully uplinkmulti-user capable client device from a first access point of theplurality of access points to a second access point of the plurality ofaccess points, wherein the first access point is associated with a ratiobelow a first threshold, wherein the second access point is associatedwith a ratio above a second threshold, and wherein the first thresholdis less than the second threshold.
 3. The method of claim 1, whereinsteering distributes a plurality of client devices of the network suchthat the ratio of each access point of the plurality of access points iseither a low amount or a high amount.
 4. The method of claim 1, furthercomprising: collecting, by at least one access point of the plurality ofaccess points in the network, a plurality of network information;sending, by the at least one access point, the plurality of networkinformation to a controller, wherein the determining is performed by thecontroller; and sending, by the controller, the ratio to each accesspoint of the plurality of access points.
 5. The method of claim 4,further comprising: classifying, by the controller, each access point ofthe plurality of access points as one of: a fully uplink multi-usercapable access point, an uplink multi-user incapable access point, or anundetermined access point.
 6. The method of claim 1, wherein partiallyuplink multi-user capable client devices are grouped with uplinkmulti-user incapable client devices.
 7. The method of claim 1, whereinpartially uplink multi-user capable client devices are grouped withfully uplink multi-user capable client devices.
 8. A non-transitorymachine-readable storage medium encoded with instructions executable bya hardware processor of a computing component, the machine-readablestorage medium comprising instructions to cause the hardware processorto: determine, for each access point of a plurality of access points ina network, a ratio comprising a number of fully uplink multi-usercapable client devices to a total number of client devices connected tothe access point; and steer, based on at least the ratio, client devicesof the network to particular access points of the plurality of accesspoints.
 9. The non-transitory machine-readable storage medium of claim8, wherein steering comprises moving a fully uplink multi-user capableclient device from a first access point of the plurality of accesspoints to a second access point of the plurality of access points,wherein the first access point is associated with a ratio below a firstthreshold, wherein the second access point is associated with a ratioabove a second threshold, and wherein the first threshold is less thanthe second threshold.
 10. The non-transitory machine-readable storagemedium of claim 8, wherein steering distributes a plurality of clientdevices of the network such that the ratio of each access point of theplurality of access points is either a low amount or a high amount. 11.The non-transitory machine-readable storage medium of claim 8, theinstructions further causing the processor to: collect, a plurality ofnetwork information; send the plurality of network information to acontroller, wherein the determining is performed by the controller; andsend the ratio to each access point of the plurality of access points.12. The non-transitory machine-readable storage medium of claim 11, theinstructions further causing the processor to: classify each accesspoint of the plurality of access points as one of: a fully uplinkmulti-user capable access point, an uplink multi-user incapable accesspoint, or an undetermined access point.
 13. The non-transitorymachine-readable storage medium of claim 8, wherein partially uplinkmulti-user capable client devices are grouped with uplink multi-userincapable client devices.
 14. The non-transitory machine-readablestorage medium of claim 8, wherein partially uplink multi-user capableclient devices are grouped with fully uplink multi-user capable clientdevices.
 15. A system, comprising: a processor; a memory, the memorystoring instructions which, when executed by the processor, cause theprocessor to: determine, for each access point of a plurality of accesspoints in a network, a ratio comprising a number of fully uplinkmulti-user capable client devices to a total number of client devicesconnected to the access point; and steer, based on at least the ratio,client devices of the network to particular access points of theplurality of access points.
 16. The system of claim 15, wherein steeringcomprises moving a fully uplink multi-user capable client device from afirst access point of the plurality of access points to a second accesspoint of the plurality of access points, wherein the first access pointis associated with a ratio below a first threshold, wherein the secondaccess point is associated with a ratio above a second threshold, andwherein the first threshold is less than the second threshold.
 17. Thesystem of claim 15, wherein steering distributes a plurality of clientdevices of the network such that the ratio of each access point of theplurality of access points is either a low amount or a high amount. 18.The system of claim 8, the instructions further causing the processorto: collect, a plurality of network information; send the plurality ofnetwork information to a controller, wherein the determining isperformed by the controller; and send the ratio to each access point ofthe plurality of access points,
 19. The system of claim 18, theinstructions further causing the processor to: classify each accesspoint of the plurality of access points as one of: a fully uplinkmulti-user capable access point, an uplink multi-user incapable accesspoint, or an undetermined access point.
 20. The system of claim 15,wherein partially uplink multi-user capable client devices are groupedwith uplink multi-user incapable client devices.